
//preloading.....
load("library/common.js");

JEuler.system.loadJS("library/math.js");

(function() {

    var Permutation = JEuler.math.Permutation;
    
    
    //JEuler.system.loadJS("data/???.dat");
    JEuler.system.printCaption("68");
    JEuler.system.startTimerCount();
    
    function check(a) {
        // a[0-4] outter numbers
        // a[5-9] inner numbers
        var sum = a[4] + a[9] + a[5];
        for(var i=0; i<=3; i++) {
            if(a[i] + a[i+5] + a[i+6] != sum) return false;
        }
        return true;
    }    
    
    function print16d(a) {
        var b = [];
        for(var i=0; i<=3; i++) {
            b.push(a[i]);
            b.push(a[i+5]);
            b.push(a[i+6])
        }
        b.push(a[4]);
        b.push(a[9]);
        b.push(a[5]);
        return b.join("");
    }
    
    var outPermu = new Permutation("1234");
    permu = "1234";
    var a;
    do {
        a = [6];
        permu = permu.split("");
        for(var i=0; i<=3; i++) {
            a.push(parseInt(permu[i],10)+6);
        }
        
        var innerPermu = new Permutation("12345"), permu2="12345";
        do {
            a.length=5;
            permu2 = permu2.split("");
            for(var i=0; i<=4; i++) {
                a.push(parseInt(permu2[i],10));
            }
            permu2 = innerPermu.next();
            if(check(a)) 
                print(print16d(a));
        } while(permu2);
        
        permu = outPermu.next();
    
    } while(permu)    

    JEuler.system.printTimerCount();
    
})();
